package org.huawei260.TiKu.ODsuanfa;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @Author: qingle
 * @Date: 2024/10/28-16:11
 * @Description: 2530 【模拟】2024D灰度图恢复
 *
 * 黑白图像常采用灰度图的方式存储，即图像的每像素填充一个灰阶值，256阶灰度图是个灰阶值取值范围为0-255的灰阶矩阵，0表示全黑，255表示全白，范围内的其他值表示不同的灰度，比如下面的图像及其对应的灰阶矩阵:
 *
 *
 *
 * 但在计算机中实际存储时，会使用压缩算法，其中一种压缩格式和描述如下：10 10 255 34 0 1 255 8 0 3 255 6 0 5 255 4 0 7 255 2 0 9 255 21
 *
 * 1. 有数值以空格分隔
 *
 * 2. 前两个数分别表示矩阵的行数和列数
 *
 * 3. 从第三个数开始，每两个数一组，每组第一个数是灰阶值，第二个数表示该灰阶值以左到右，从上到下（可理解为将二维数组按行存储在一维矩阵中)的连续像素个数。
 *
 * 比如题目所述例子，255 34表示有连续34个像素的灰阶值是255。
 *
 * 如此，图像软件在打开此格式灰度图的时候，就可以根据此算法从压缩数据恢复出原始灰度图矩阵。
 *
 * 请从输入的压缩数恢复灰度图原始矩阵，并返回指定像素的灰阶值。
 *
 * 输入格式
 * 输入包括两行，第一行是灰度图压缩数据，第二行表示一个像素位置的行号和列号，如 0 0 表示左上角像素
 * 输出格式
 * 一个数字，表示输入数据表示的灰阶矩阵的指定像素的灰阶值
 * 输入样例    复制
 * 10 10 255 34 0 1 255 8 0 3 255 6 0 5 255 4 0 7 255 2 0 9 255 21
 * 3 4
 * 输出样例    复制
 * 0
 * 提示
 * 1. 系统保证输入的压缩数据是合法有效的，不会出现数据越界、数值不合法等无法恢复的场景
 *
 * 2. 系统保证输入的像素坐标是合法的，不会出现不在矩阵中的像素
 *
 * 3. 矩阵的行和列数范围为: (0, 100]
 *
 * 4. 灰阶值取值范围为 [0,255]
 *
 * @version: 1.0
 */

import java.util.Arrays;
import java.util.Scanner;
public class D_2024D_2530__模拟灰度图恢复 {

//	public static void main(String[] args) {
//		Scanner sc = new Scanner(System.in);
//		String[] s = sc.nextLine().split(" ");
//		int row = Integer.parseInt(s[0]);
//		int col = Integer.parseInt(s[1]);
//		int[] res = new int[row * col];
//		int index = 2;
//		while (index < s.length) {
//			int gray = Integer.parseInt(s[index++]);
//			int count = Integer.parseInt(s[index++]);
//			for (int i = 0; i < count; i++) {
//				res[index - 2 + i] = gray;
//			}
//		}
//		System.out.println(res[Integer.parseInt(sc.nextLine())]);
//		sc.close();
//	}

//	public class Main {
		public static void main(String[] args) {
			Scanner sc = new Scanner(System.in);

			int[] nums = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
			int[] pos = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();

			int rows = nums[0];
			int cols = nums[1];

			int[] graph = new int[rows * cols];

			int start = 0;

			for (int i = 2; i < nums.length; i += 2) {
				// 灰阶值
				int gray = nums[i];
				// 该灰阶值从左到右，从上到下（可理解为二维数组按行存储在一维矩阵中）的连续像素个数
				int len = nums[i + 1];
				Arrays.fill(graph, start, start + len, gray);
				start += len;
			}

			// 将二维坐标转为一维坐标
			int target = pos[0] * cols + pos[1];
			System.out.println(graph[target]);
		}
//	}

}
